Esta pregunta en realidad se deriva directamente de mi respuesta a una pregunta anterior.
Agregué una "homepage" a mi package.json porque es una aplicación React que alojé en Github Pages. El resultado de npm run build dice que el directorio /build ahora se puede implementar y asume que el proyecto está alojado en /project_name/ .
Pero en localhost, el proyecto no está alojado en /project_name/ , por lo que las rutas solicitadas para js y css están desordenadas (buscando /project_name/static/... en lugar de /static/... ) y la aplicación roto.
¿Cómo se puede tener el campo de la página de inicio en package.json para que puedan implementarse en las páginas de Github (por ejemplo) mientras se sigue desarrollando localmente con una aplicación en funcionamiento?
Docs para create-react-app explica cómo servir la misma compilación desde diferentes rutas relativas.
Si pones la página de inicio como
"homepage": ".", los activos se publicarán en relación con index.html . Luego podrá mover su aplicación de http://mywebsite.com a http://mywebsite.com/relativepath o incluso a http://mywebsite.com/relative/path sin tener que reconstruirla.
Para propósitos de desarrollo, servir usando yarn start o npm start es lo suficientemente bueno. La aplicación estará disponible en localhost
Puede usar la variable de entorno PUBLIC_URL para anular la página de inicio para una compilación específica. Aún mejor, configúrelo en su paquete.json, por ejemplo:
{ // ... "scripts": { "build": "react-scripts build", "build-localhost": "PUBLIC_URL=/ react-scripts build" // ... } // ... }Puede anular la configuración de la página de inicio utilizando su entorno de shell de desarrollo:
$ export PUBLIC_URL=http://localhost:3000/ $ yarn starto si lo prefiere, elimine la configuración de su página de inicio y configure su env antes de compilar para producción:
$ export PUBLIC_URL=http://example.com/subdir $ yarn build